using SheLife.Domain.Common;

namespace SheLife.Domain.Entities;

public class User : BaseEntity
{
    public string Username { get; set; } = string.Empty;
    public string Email { get; set; } = string.Empty;
    public string PasswordHash { get; set; } = string.Empty;
    public string PhoneNumber { get; set; } = string.Empty;
    public DateTime DateOfBirth { get; set; }
    public string Gender { get; set; } = string.Empty;
    public string Avatar { get; set; } = string.Empty;
    public bool IsActive { get; set; } = true;
    public DateTime LastLoginAt { get; set; }
    
    // 导航属性
    public virtual UserProfile? Profile { get; set; }
    public virtual ICollection<MenstrualCycle> MenstrualCycles { get; set; } = new List<MenstrualCycle>();
    public virtual ICollection<Habit> Habits { get; set; } = new List<Habit>();
    public virtual ICollection<HabitRecord> HabitRecords { get; set; } = new List<HabitRecord>();
    public virtual ICollection<Skincare> SkincareRecords { get; set; } = new List<Skincare>();
    public virtual ICollection<SkincareProduct> SkincareProducts { get; set; } = new List<SkincareProduct>();
    public virtual ICollection<SkincareAnalysis> SkincareAnalyses { get; set; } = new List<SkincareAnalysis>();
    public virtual PrivacySetting? PrivacySetting { get; set; }
}